package com.kfm.base.ab;

public class Demo {

    public static void main(String[] args) {
        /**
         * abstract class 抽象类, 不能用 final 声明
         * abstract method 抽象方法，抽象方法只有声明没有方法体.包含抽象方法的类一定是抽象类.
         *              不能使用 private 修饰
         *
         * 当子类继承父类后，子类不强制要求需要重写父类的方法。我们将方法使用 abstract 修饰，子类就必须重写。
         * 一个类不希望被实例化，就可以声明为 abstract 类。
         * 一个类继承了一个抽象类，但是没有重写（实现）抽象方法，这个类就可以声明为抽象类
         *
         *  抽象类和普通类的区别：
         *      1. 抽象类可以有抽象方法
         *      2. 抽象类不能被实例化 (有构造方法)
         *
         *  定义规范时，可以使用抽象类。
         */

    }
}

abstract class A {

}
